<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>ECMAScript 类型转换</title>
    <script>
        /*
        Js 中所有的对象都有 toString 方法 
        parseInt 方法 可以传入指定的 进制 得到不同的 进制的值   010 二进制 就是2  八进制 就是 10  默认是十进制的
        parseFloat 无法解析 0xABC 这样的字符串 为正确的值 而返回 0
        当然也可以强制类型转换 
        */

        // 将其他的类型强制转换成 boolen 类型 
        function forceToBoolean(){
            var b1 = Boolean("");		//false - 空字符串
            var b2 = Boolean("hello");		//true - 非空字符串
            var b1 = Boolean(50);		//true - 非零数字
            var b1 = Boolean(null);		//false - null
            var b1 = Boolean(0);		//false - 零
            var b1 = Boolean(new object());	//true - 对象
        }

        // 强制将其他类型的变量转换成 数字 
        function forceToNumber(){
            // Numbers 会考虑是使用 parseInt() 还是 parseFloat()
            /*
            Number(false)	0
            Number(true)	1
            Number(undefined)	NaN
            Number(null)	0
            Number("1.2")	1.2
            Number("12")	12
            Number("1.2.3")	NaN
            Number(new object())	NaN
            Number(50)	50
            */
            // var number = Number(undefined)
            // alert(number)
            // var nullNumber = Number(null)
            // alert(nullNumber)
            var obj = {
                name:"DeLong"
            }
            var newNumber = Number(obj)    // NaN
            console.log(newNumber)
            alert(newNumber)

            var obj2 = new Object()
            var num2 = Number(obj2)
            console.log(num2 + "dddddd")

            // 但是如果 obj = new object()  就直接报错了  应该是 new Object()
        }

        // 强制转成 toString
        function forceToString(){

            var s1 = String(null);	//"null"
            var oNull = null;
            var s2 = oNull.toString();	//会引发错误 Uncaught TypeError: Cannot read property 'toString' of null
            alert(s2)
        }

    </script>
</head>
<body>
    <button onclick="forceToNumber()">强制转成number</button>
    <button onclick="forceToString()">强制转成string</button> 
</body>
</html>